High Availability
💡 Definition
High Availability (HA) refers to systems that are designed to operate continuously without failure for a long time. It ensures that an application or service remains accessible and operational even if components fail.
🔑 Key Concepts
- Redundancy: Having duplicate components or systems in case one fails.
- Failover: The process of automatically switching to a redundant or standby system upon the failure or abnormal termination of an active system.
- Load Balancing: Distributing traffic across multiple resources to prevent any single point of failure (ee.g., Load Balancer).
- Auto Scaling: Automatically adjusting compute capacity to handle changes in demand, ensuring availability.
⚙️ How it Works
In AWS, HA is achieved by deploying applications across multiple AZs within a Region. If one AZ experiences an outage, the application continues to run in other healthy AZs. Services like RDS Multi-AZ, Auto Scaling, and Load Balancers are key to building highly available architectures.
🎯 Use Cases
- Critical Business Applications: Ensuring uninterrupted access to essential services (e.g., e-commerce, banking).
- Public-facing Websites: Maintaining website uptime during traffic spikes or component failures.
💰 Pricing Model
- Achieving High Availability often involves running duplicate resources, which means you pay for more resources than a single-point-of-failure setup.
📝 Exam Tips (CLF-C02)
- Key strategies include Multi-AZ deployments (e.g., RDS Multi-AZ).
- Utilizes services like Auto Scaling and Load Balancers.
- Closely related to Fault Tolerance.
See Also: * Fault Tolerance * AZ * Load Balancer * Auto Scaling